package com.hyt.it.ogt.ykcj.domain.vo;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import com.hyt.it.ogt.ykcj.common.annotation.Excel;
import com.hyt.it.ogt.ykcj.domain.grade.ServantPassAnalysisData;

import cn.hutool.json.JSONUtil;

/**
 * @author gaokx
 * @Description
 * @create 2021-11-02 12:46
 **/
public class ServantGradeAnalysisRsp {
  /**
   *  当前年份整体数据统计
   */
  GradeAnalysisDataVo curDataAnalysis ;

  /**
   * 实考趋势和整体合格率趋势
   */
  List<ServantGradeAnalysisYearVo> totalDataList ;

  /**
   * 面试情况--列表
   */
  List<InterviewAnalysisDataVo> interviewAnalysisData = new ArrayList<>();

  /**
   * 面试情况--合格
   */
  List<ServantAnalysisPassVo>  passInfo;
  /**
   * 面试情况--面试
   */
  List<ServantAnalysisInterviewVo>  interviewInfo;
  /**
   * 面试情况--面试职位比例
   */
  List<ServantAnalysisPositionVo>  positionInfo;

  public List<ServantAnalysisPassVo> getPassInfo() {
    return passInfo;
  }

  public void setPassInfo(
          List<ServantAnalysisPassVo> passInfo) {
    this.passInfo = passInfo;
  }

  public List<ServantAnalysisInterviewVo> getInterviewInfo() {
    return interviewInfo;
  }

  public void setInterviewInfo(
          List<ServantAnalysisInterviewVo> interviewInfo) {
    this.interviewInfo = interviewInfo;
  }

  public List<ServantAnalysisPositionVo> getPositionInfo() {
    return positionInfo;
  }

  public void setPositionInfo(
          List<ServantAnalysisPositionVo> positionInfo) {
    this.positionInfo = positionInfo;
  }

  /**
   * 通过情况
   */
  List<ServantPassAnalysisDataVo> passAnalysisData = new ArrayList<>();


  public List<InterviewAnalysisDataVo> getInterviewAnalysisData() {
    return interviewAnalysisData;
  }

  public void setInterviewAnalysisData(
          List<InterviewAnalysisDataVo> interviewAnalysisData) {
    this.interviewAnalysisData = interviewAnalysisData;
  }

  public List<ServantPassAnalysisDataVo> getPassAnalysisData() {
    return passAnalysisData;
  }

  public void setPassAnalysisData(
          List<ServantPassAnalysisDataVo> passAnalysisData) {
    this.passAnalysisData = passAnalysisData;
  }


  /**
   * 面试-- 合格数据
   */
  public  static   class ServantAnalysisPassVo{
    /**
     * 职位类别
     */
    private String zwlb;
    /**
     * 职位类别名称
     */
    private String zwlbName;

    /**
     * 实考人数
     */
    @Excel(name = "实考人数")
    private Long examineeNum;
    /**
     * 男实考人数
     */
    @Excel(name = "男实考人数")
    private Long maleExamineeNum;
    /**
     * 男实考占比
     */
    @Excel(name = "男实考占比")
    private BigDecimal maleExamRate;
    /**
     * 合格人数
     */
    @Excel(name = "合格人数")
    private Long passNum;
    /**
     * 男合格人数
     */
    @Excel(name = "男合格人数")
    private Long malePassNum;
    /**
     * 男合格占比
     */
    @Excel(name = "男合格占比")
    private BigDecimal malePassRate;
    /**
     * 合格率
     */
    @Excel(name = "合格率")
    private BigDecimal passRate;

    public String getZwlb() {
      return zwlb;
    }

    public void setZwlb(String zwlb) {
      this.zwlb = zwlb;
    }

    public String getZwlbName() {
      return zwlbName;
    }

    public void setZwlbName(String zwlbName) {
      this.zwlbName = zwlbName;
    }

    public Long getExamineeNum() {
      return examineeNum;
    }

    public void setExamineeNum(Long examineeNum) {
      this.examineeNum = examineeNum;
    }

    public Long getMaleExamineeNum() {
      return maleExamineeNum;
    }

    public void setMaleExamineeNum(Long maleExamineeNum) {
      this.maleExamineeNum = maleExamineeNum;
    }

    public BigDecimal getMaleExamRate() {
      return maleExamRate;
    }

    public void setMaleExamRate(BigDecimal maleExamRate) {
      this.maleExamRate = maleExamRate;
    }

    public Long getPassNum() {
      return passNum;
    }

    public void setPassNum(Long passNum) {
      this.passNum = passNum;
    }

    public Long getMalePassNum() {
      return malePassNum;
    }

    public void setMalePassNum(Long malePassNum) {
      this.malePassNum = malePassNum;
    }

    public BigDecimal getMalePassRate() {
      return malePassRate;
    }

    public void setMalePassRate(BigDecimal malePassRate) {
      this.malePassRate = malePassRate;
    }

    public BigDecimal getPassRate() {
      return passRate;
    }

    public void setPassRate(BigDecimal passRate) {
      this.passRate = passRate;
    }
  }



  /**
   * 面试-- 面试数据
   */
  public  static   class ServantAnalysisInterviewVo{
    /**
     * 职位类别
     */
    private String zwlb;
    /**
     * 职位类别名称
     */
    private String zwlbName;
    /**
     * 应面试人数
     */
    @Excel(name = "应面试人数")
    private Long interviewNum;

    /**
     * 实际进面试人数
     */
    @Excel(name = "实际进面试人数")
    private Long retrialInterviewNum;

    /**
     * 实际进面试比例
     */
    @Excel(name = "实际进面试比例")
    private BigDecimal retrialInterviewRate;

    /**
     * 男面试人数
     */
    @Excel(name = "男面试人数")
    private Long maleInterviewNum;
    /**
     * 男面试比例
     */
    @Excel(name = "男面试比例")
    private BigDecimal maleInterviewRate;

    public String getZwlb() {
      return zwlb;
    }

    public void setZwlb(String zwlb) {
      this.zwlb = zwlb;
    }

    public String getZwlbName() {
      return zwlbName;
    }

    public void setZwlbName(String zwlbName) {
      this.zwlbName = zwlbName;
    }

    public Long getInterviewNum() {
      return interviewNum;
    }

    public void setInterviewNum(Long interviewNum) {
      this.interviewNum = interviewNum;
    }

    public Long getRetrialInterviewNum() {
      return retrialInterviewNum;
    }

    public void setRetrialInterviewNum(Long retrialInterviewNum) {
      this.retrialInterviewNum = retrialInterviewNum;
    }

    public BigDecimal getRetrialInterviewRate() {
      return retrialInterviewRate;
    }

    public void setRetrialInterviewRate(BigDecimal retrialInterviewRate) {
      this.retrialInterviewRate = retrialInterviewRate;
    }

    public Long getMaleInterviewNum() {
      return maleInterviewNum;
    }

    public void setMaleInterviewNum(Long maleInterviewNum) {
      this.maleInterviewNum = maleInterviewNum;
    }

    public BigDecimal getMaleInterviewRate() {
      return maleInterviewRate;
    }

    public void setMaleInterviewRate(BigDecimal maleInterviewRate) {
      this.maleInterviewRate = maleInterviewRate;
    }
  }

  /**
   * 面试-- 职位数据
   */
  public  static   class ServantAnalysisPositionVo{
    /**
     * 职位类别
     */
    private String zwlb;
    /**
     * 职位类别名称
     */
    private String zwlbName;

    @Excel(name = "职位数量")
    private Long positionNum;
    /**
     * 计划录取人数
     */
    @Excel(name = "计划录取人数")
    private Long planAdmissionNum;
    /**
     * 有人进面试的职位数
     */
    @Excel(name = "有人进面试的职位数")
    private Long hasRetrialPositionNum;
    /**
     * 男进面试职位数
     */
    @Excel(name = "男进面试职位数")
    private Long maleRetrialPositionNum;

    /**
     * 有人进面试的职位数
     */
    @Excel(name = "有人报名的职位数")
    private Long hasApplyPositionNum;

    /**
     * 男进面试职位数
     */
    @Excel(name = "有男报名职位数")
    private Long maleApplyPositionNum;

    /**
     * 男进面试职比例
     */
    @Excel(name = "男进面试职比例")
    private BigDecimal maleRetrialPositionRate;

    public BigDecimal getMaleRetrialPositionRate() {
      return maleRetrialPositionRate;
    }

    public void setMaleRetrialPositionRate(BigDecimal maleRetrialPositionRate) {
      this.maleRetrialPositionRate = maleRetrialPositionRate;
    }

    public String getZwlb() {
      return zwlb;
    }

    public void setZwlb(String zwlb) {
      this.zwlb = zwlb;
    }

    public String getZwlbName() {
      return zwlbName;
    }

    public void setZwlbName(String zwlbName) {
      this.zwlbName = zwlbName;
    }

    public Long getPositionNum() {
      return positionNum;
    }

    public void setPositionNum(Long positionNum) {
      this.positionNum = positionNum;
    }

    public Long getPlanAdmissionNum() {
      return planAdmissionNum;
    }

    public void setPlanAdmissionNum(Long planAdmissionNum) {
      this.planAdmissionNum = planAdmissionNum;
    }

    public Long getHasRetrialPositionNum() {
      return hasRetrialPositionNum;
    }

    public void setHasRetrialPositionNum(Long hasRetrialPositionNum) {
      this.hasRetrialPositionNum = hasRetrialPositionNum;
    }

    public Long getMaleRetrialPositionNum() {
      return maleRetrialPositionNum;
    }

    public void setMaleRetrialPositionNum(Long maleRetrialPositionNum) {
      this.maleRetrialPositionNum = maleRetrialPositionNum;
    }

    public Long getHasApplyPositionNum() {
      return hasApplyPositionNum;
    }

    public void setHasApplyPositionNum(Long hasApplyPositionNum) {
      this.hasApplyPositionNum = hasApplyPositionNum;
    }

    public Long getMaleApplyPositionNum() {
      return maleApplyPositionNum;
    }

    public void setMaleApplyPositionNum(Long maleApplyPositionNum) {
      this.maleApplyPositionNum = maleApplyPositionNum;
    }
  }


  /**
   * 面试比例--列表
   */
  public  static   class InterviewAnalysisDataVo {

    public InterviewAnalysisDataVo(String positionTier,
                                   List<ServantInterviewAnalysisDataResp> resps) {
      this.positionTier = positionTier;
      this.resps = resps;
    }

    String positionTier ;
    List<ServantInterviewAnalysisDataResp> resps ;

    public String getPositionTier() {
      return positionTier;
    }

    public void setPositionTier(String positionTier) {
      this.positionTier = positionTier;
    }

    public List<ServantInterviewAnalysisDataResp> getResps() {
      return resps;
    }

    public void setResps(List<ServantInterviewAnalysisDataResp> resps) {
      this.resps = resps;
    }
  }

  public  static   class ServantPassAnalysisDataVo{
    String positionTier ;
    List<ServantPassAnalysisData> resps ;

    public ServantPassAnalysisDataVo(String positionTier,
                                     List<ServantPassAnalysisData> resps) {
      this.positionTier = positionTier;
      this.resps = resps;
    }

    public String getPositionTier() {
      return positionTier;
    }

    public void setPositionTier(String positionTier) {
      this.positionTier = positionTier;
    }

    public List<ServantPassAnalysisData> getResps() {
      return resps;
    }

    public void setResps(List<ServantPassAnalysisData> resps) {
      this.resps = resps;
    }
  }


  public GradeAnalysisDataVo getCurDataAnalysis() {
    return curDataAnalysis;
  }

  public void setCurDataAnalysis(GradeAnalysisDataVo curDataAnalysis) {
    this.curDataAnalysis = curDataAnalysis;
  }


  public List<ServantGradeAnalysisYearVo> getTotalDataList() {
    return totalDataList;
  }

  public void setTotalDataList(
          List<ServantGradeAnalysisYearVo> totalDataList) {
    this.totalDataList = totalDataList;
  }

  @Override
  public String toString() {
    return "ServantGradeAnalysisRsp{" +
            "curDataAnalysis=" + JSONUtil.toJsonStr(curDataAnalysis) +
            ", totalDataList=" + JSONUtil.toJsonStr(totalDataList) +
            '}';
  }
}
